﻿/*
 * Copyright guangboo49@gmail.com
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * 
 */

using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using System.Runtime.CompilerServices;
using Microsoft.Office.Core;
using Microsoft.Office.Interop.Word;

namespace Interop.Word {
    [ComImport, Guid("6FFA84BB-A350-4442-BB53-A43653459A84"), TypeLibType((short)0x10c0)]
    public interface Chart {
        [DispId(150)]
        object Parent { [return: MarshalAs(UnmanagedType.IDispatch)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(150)] get; }
        [DispId(0x60020001)]
        bool HasTitle { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), LCIDConversion(0), DispId(0x60020001)] get; [param: In] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), LCIDConversion(0), DispId(0x60020001)] set; }
        [DispId(0x60020003)]
        ChartTitle ChartTitle { [return: MarshalAs(UnmanagedType.Interface)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020003), LCIDConversion(0)] get; }
        [DispId(0x60020004)]
        int DepthPercent { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), LCIDConversion(0), DispId(0x60020004)] get; [param: In] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020004), LCIDConversion(0)] set; }
        [DispId(0x60020006)]
        int Elevation { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020006), LCIDConversion(0)] get; [param: In] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020006), LCIDConversion(0)] set; }
        [DispId(0x60020008)]
        int GapDepth { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), LCIDConversion(0), DispId(0x60020008)] get; [param: In] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), LCIDConversion(0), DispId(0x60020008)] set; }
        [DispId(0x6002000a)]
        int HeightPercent { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002000a), LCIDConversion(0)] get; [param: In] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), LCIDConversion(0), DispId(0x6002000a)] set; }
        [DispId(0x6002000c)]
        int Perspective { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002000c), LCIDConversion(0)] get; [param: In] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), LCIDConversion(0), DispId(0x6002000c)] set; }
        [DispId(0x6002000e)]
        object RightAngleAxes { [return: MarshalAs(UnmanagedType.Struct)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002000e), LCIDConversion(0)] get; [param: In, MarshalAs(UnmanagedType.Struct)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002000e), LCIDConversion(0)] set; }
        [DispId(0x60020010)]
        object Rotation { [return: MarshalAs(UnmanagedType.Struct)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), LCIDConversion(0), DispId(0x60020010)] get; [param: In, MarshalAs(UnmanagedType.Struct)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020010), LCIDConversion(0)] set; }
        [DispId(0x60020012)]
        XlDisplayBlanksAs DisplayBlanksAs { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020012), LCIDConversion(0)] get; [param: In] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), LCIDConversion(0), DispId(0x60020012)] set; }
        [DispId(8)]
        object this[object Index] { [return: MarshalAs(UnmanagedType.IDispatch)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), LCIDConversion(1), DispId(8)] get; }
        [return: MarshalAs(UnmanagedType.IDispatch)]
        [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x44), LCIDConversion(1)]
        object SeriesCollection([In, Optional, MarshalAs(UnmanagedType.Struct)] object Index);
        [DispId(0x6d)]
        int SubType { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), LCIDConversion(0), DispId(0x6d), TypeLibFunc((short)0x40)] get; [param: In] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6d), TypeLibFunc((short)0x40), LCIDConversion(0)] set; }
        [DispId(0x6c)]
        int Type { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), TypeLibFunc((short)0x40), DispId(0x6c), LCIDConversion(0)] get; [param: In] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6c), TypeLibFunc((short)0x40), LCIDConversion(0)] set; }
        [DispId(0x4f)]
        Corners Corners { [return: MarshalAs(UnmanagedType.Interface)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x4f), LCIDConversion(0), TypeLibFunc((short)0x40)] get; }
        [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), LCIDConversion(10), DispId(0x782)]
        void ApplyDataLabels([In, Optional, DefaultParameterValue(XlDataLabelsType.xlDataLabelsShowValue)] XlDataLabelsType Type, [In, Optional, MarshalAs(UnmanagedType.Struct)] object LegendKey, [In, Optional, MarshalAs(UnmanagedType.Struct)] object AutoText, [In, Optional, MarshalAs(UnmanagedType.Struct)] object HasLeaderLines, [In, Optional, MarshalAs(UnmanagedType.Struct)] object ShowSeriesName, [In, Optional, MarshalAs(UnmanagedType.Struct)] object ShowCategoryName, [In, Optional, MarshalAs(UnmanagedType.Struct)] object ShowValue, [In, Optional, MarshalAs(UnmanagedType.Struct)] object ShowPercentage, [In, Optional, MarshalAs(UnmanagedType.Struct)] object ShowBubbleSize, [In, Optional, MarshalAs(UnmanagedType.Struct)] object Separator);
        [DispId(0x578)]
        XlChartType ChartType { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x578)] get; [param: In] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x578)] set; }
        [DispId(0x574)]
        bool HasDataTable { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x574)] get; [param: In] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x574)] set; }
        [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), TypeLibFunc((short)0x40), DispId(0x579)]
        void ApplyCustomType([In] XlChartType ChartType, [In, Optional, MarshalAs(UnmanagedType.Struct)] object TypeName);
        [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x581)]
        void GetChartElement([In] int x, [In] int y, out int ElementID, out int Arg1, out int Arg2);
        [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x585)]
        void SetSourceData([In, MarshalAs(UnmanagedType.BStr)] string Source, [In, Optional, MarshalAs(UnmanagedType.Struct)] object PlotBy);
        [DispId(0xca)]
        XlRowCol PlotBy { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0xca)] get; [param: In] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0xca)] set; }
        [DispId(0x35)]
        bool HasLegend { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x35), LCIDConversion(0)] get; [param: In] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x35), LCIDConversion(0)] set; }
        [DispId(0x54)]
        Legend Legend { [return: MarshalAs(UnmanagedType.Interface)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x54), LCIDConversion(0)] get; }
        [return: MarshalAs(UnmanagedType.IDispatch)]
        [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), LCIDConversion(2), DispId(0x60020035)]
        object Axes([In, Optional, MarshalAs(UnmanagedType.Struct)] object Type, [In, Optional, DefaultParameterValue((XlAxisGroup)1)] XlAxisGroup AxisGroup);
        [DispId(0x60020036)]
        object this[object Index1, object Index2] { [return: MarshalAs(UnmanagedType.Struct)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020036), LCIDConversion(2)] get; [param: In, Optional, MarshalAs(UnmanagedType.Struct)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), LCIDConversion(2), DispId(0x60020036)] set; }
        [DispId(0x60020038)]
        Walls Walls { [return: MarshalAs(UnmanagedType.Interface)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020038), LCIDConversion(0)] get; }
        [DispId(0x60020039)]
        Floor Floor { [return: MarshalAs(UnmanagedType.Interface)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020039), LCIDConversion(0)] get; }
        [DispId(0x6002003a)]
        PlotArea PlotArea { [return: MarshalAs(UnmanagedType.Interface)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002003a), LCIDConversion(0)] get; }
        [DispId(0x5c)]
        bool PlotVisibleOnly { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), LCIDConversion(0), DispId(0x5c)] get; [param: In] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), LCIDConversion(0), DispId(0x5c)] set; }
        [DispId(0x6002003d)]
        ChartArea ChartArea { [return: MarshalAs(UnmanagedType.Interface)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002003d), LCIDConversion(0)] get; }
        [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), TypeLibFunc((short)0x40), DispId(0x6002003e)]
        void AutoFormat([In] int Gallery, [In, Optional, MarshalAs(UnmanagedType.Struct)] object Format);
        [DispId(0x6002003f)]
        bool AutoScaling { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002003f), LCIDConversion(0)] get; [param: In] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), LCIDConversion(0), DispId(0x6002003f)] set; }
        [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020041)]
        void SetBackgroundPicture([In, MarshalAs(UnmanagedType.BStr)] string FileName);
        [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), LCIDConversion(11), DispId(0x60020042)]
        void ChartWizard([In, Optional, MarshalAs(UnmanagedType.Struct)] object Source, [In, Optional, MarshalAs(UnmanagedType.Struct)] object Gallery, [In, Optional, MarshalAs(UnmanagedType.Struct)] object Format, [In, Optional, MarshalAs(UnmanagedType.Struct)] object PlotBy, [In, Optional, MarshalAs(UnmanagedType.Struct)] object CategoryLabels, [In, Optional, MarshalAs(UnmanagedType.Struct)] object SeriesLabels, [In, Optional, MarshalAs(UnmanagedType.Struct)] object HasLegend, [In, Optional, MarshalAs(UnmanagedType.Struct)] object Title, [In, Optional, MarshalAs(UnmanagedType.Struct)] object CategoryTitle, [In, Optional, MarshalAs(UnmanagedType.Struct)] object ValueTitle, [In, Optional, MarshalAs(UnmanagedType.Struct)] object ExtraTitle);
        [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020043), LCIDConversion(3)]
        void CopyPicture([In, Optional, DefaultParameterValue((XlPictureAppearance)1)] XlPictureAppearance Appearance, [In, Optional, DefaultParameterValue((XlCopyPictureFormat)(-4147))] XlCopyPictureFormat Format, [In, Optional, DefaultParameterValue((XlPictureAppearance)2)] XlPictureAppearance Size);
        [DispId(0x60020044)]
        DataTable DataTable { [return: MarshalAs(UnmanagedType.Interface)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020044)] get; }
        [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), LCIDConversion(1), DispId(0x60020047)]
        void Paste([In, Optional, MarshalAs(UnmanagedType.Struct)] object Type);
        [DispId(0x60020048)]
        XlBarShape BarShape { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020048)] get; [param: In] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020048)] set; }
        [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002004a)]
        bool Export([In, MarshalAs(UnmanagedType.BStr)] string FileName, [In, Optional, MarshalAs(UnmanagedType.Struct)] object FilterName, [In, Optional, MarshalAs(UnmanagedType.Struct)] object Interactive);
        [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002004b)]
        void SetDefaultChart([In, MarshalAs(UnmanagedType.Struct)] object Name);
        [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002004c)]
        void ApplyChartTemplate([In, MarshalAs(UnmanagedType.BStr)] string FileName);
        [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002004d)]
        void SaveChartTemplate([In, MarshalAs(UnmanagedType.BStr)] string FileName);
        [DispId(0x949)]
        Walls SideWall { [return: MarshalAs(UnmanagedType.Interface)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x949)] get; }
        [DispId(0x94a)]
        Walls BackWall { [return: MarshalAs(UnmanagedType.Interface)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x94a)] get; }
        [DispId(0x9a1)]
        object ChartStyle { [return: MarshalAs(UnmanagedType.Struct)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x9a1)] get; [param: In, MarshalAs(UnmanagedType.Struct)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x9a1)] set; }
        [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x9a2)]
        void ClearToMatchStyle();
        [DispId(0x716)]
        object PivotLayout { [return: MarshalAs(UnmanagedType.IDispatch)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x716)] get; }
        [DispId(0x717)]
        bool HasPivotFields { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x717), TypeLibFunc((short)0x40)] get; [param: In] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), TypeLibFunc((short)0x40), DispId(0x717)] set; }
        [DispId(0x60020057)]
        bool ShowDataLabelsOverMaximum { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020057)] get; [param: In] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020057)] set; }
        [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x9a4)]
        void ApplyLayout([In] int Layout, [In, Optional, MarshalAs(UnmanagedType.Struct)] object ChartType);
        [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002005b)]
        void Refresh();
        [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002005c)]
        void SetElement([In] MsoChartElementType Element);
        [DispId(0x6002005d)]
        ChartData ChartData { [return: MarshalAs(UnmanagedType.Interface)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002005d)] get; }
        [DispId(0x6002005f)]
        object Shapes { [return: MarshalAs(UnmanagedType.IDispatch)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x6002005f)] get; }
        [DispId(0x94)]
        object Application { [return: MarshalAs(UnmanagedType.IDispatch)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x94)] get; }
        [DispId(0x95)]
        int Creator { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x95)] get; }
        [DispId(0x11)]
        ChartGroup Area3DGroup { [return: MarshalAs(UnmanagedType.Interface)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x11), TypeLibFunc((short)0x40), LCIDConversion(0)] get; }
        [return: MarshalAs(UnmanagedType.IDispatch)]
        [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), LCIDConversion(1), DispId(9), TypeLibFunc((short)0x40)]
        object AreaGroups([In, Optional, MarshalAs(UnmanagedType.Struct)] object Index);
        [DispId(0x12)]
        ChartGroup Bar3DGroup { [return: MarshalAs(UnmanagedType.Interface)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x12), TypeLibFunc((short)0x40), LCIDConversion(0)] get; }
        [return: MarshalAs(UnmanagedType.IDispatch)]
        [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), LCIDConversion(1), TypeLibFunc((short)0x40), DispId(10)]
        object BarGroups([In, Optional, MarshalAs(UnmanagedType.Struct)] object Index);
        [DispId(0x13)]
        ChartGroup Column3DGroup { [return: MarshalAs(UnmanagedType.Interface)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), TypeLibFunc((short)0x40), DispId(0x13), LCIDConversion(0)] get; }
        [return: MarshalAs(UnmanagedType.IDispatch)]
        [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(11), TypeLibFunc((short)0x40), LCIDConversion(1)]
        object ColumnGroups([In, Optional, MarshalAs(UnmanagedType.Struct)] object Index);
        [DispId(20)]
        ChartGroup Line3DGroup { [return: MarshalAs(UnmanagedType.Interface)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), LCIDConversion(0), DispId(20), TypeLibFunc((short)0x40)] get; }
        [return: MarshalAs(UnmanagedType.IDispatch)]
        [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), TypeLibFunc((short)0x40), LCIDConversion(1), DispId(12)]
        object LineGroups([In, Optional, MarshalAs(UnmanagedType.Struct)] object Index);
        [DispId(0x15)]
        ChartGroup Pie3DGroup { [return: MarshalAs(UnmanagedType.Interface)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), TypeLibFunc((short)0x40), LCIDConversion(0), DispId(0x15)] get; }
        [return: MarshalAs(UnmanagedType.IDispatch)]
        [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), TypeLibFunc((short)0x40), LCIDConversion(1), DispId(13)]
        object PieGroups([In, Optional, MarshalAs(UnmanagedType.Struct)] object Index);
        [return: MarshalAs(UnmanagedType.IDispatch)]
        [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), LCIDConversion(1), TypeLibFunc((short)0x40), DispId(14)]
        object DoughnutGroups([In, Optional, MarshalAs(UnmanagedType.Struct)] object Index);
        [return: MarshalAs(UnmanagedType.IDispatch)]
        [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), TypeLibFunc((short)0x40), LCIDConversion(1), DispId(15)]
        object RadarGroups([In, Optional, MarshalAs(UnmanagedType.Struct)] object Index);
        [DispId(0x16)]
        ChartGroup SurfaceGroup { [return: MarshalAs(UnmanagedType.Interface)] [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), LCIDConversion(0), DispId(0x16), TypeLibFunc((short)0x40)] get; }
        [return: MarshalAs(UnmanagedType.IDispatch)]
        [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), TypeLibFunc((short)0x40), DispId(0x10), LCIDConversion(1)]
        object XYGroups([In, Optional, MarshalAs(UnmanagedType.Struct)] object Index);
        [return: MarshalAs(UnmanagedType.Struct)]
        [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x75), LCIDConversion(0)]
        object Delete();
        [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x227), LCIDConversion(2)]
        void Copy([In, Optional, MarshalAs(UnmanagedType.Struct)] object Before, [In, Optional, MarshalAs(UnmanagedType.Struct)] object After);
        [return: MarshalAs(UnmanagedType.Struct)]
        [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), LCIDConversion(1), DispId(0xeb)]
        object Select([In, Optional, MarshalAs(UnmanagedType.Struct)] object Replace);
    }

   
}
